package com.bestcem.xm.deliver.grpc.client.dto;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author gy.liu
 * @version 1.0
 * @date 2021/8/19 15:07
 **/
@ToString
@Getter
@Setter
public class RespondentDto {
    /**
     * 主键
     */
    String id;

    /**
     * Required 答卷数据 map
     * [
     * {
     * "gid": 2,
     * "cid": "Q1",
     * "_index": "Q1",
     * "title": "单选题",
     * "qtype": "single",
     * "custom_qtype": "single",
     * "answer": [
     * {
     * "gid": 3,
     * "seq": 3,
     * "title": "选项1",
     * "open": "赵明"
     * }
     * ]
     * }
     * ]
     */
    String answers;

    /**
     * 问卷ID
     */
    String projectId;

    /**
     * 数据状态
     */
    Integer dataStatus;

    /**
     * 答卷状态
     */
    Integer status;

    /**
     * 废弃前的状态，用于恢复
     */
    Integer preDiscardStatus;

    /**
     * 答卷序号
     */
    Long seq;

    /**
     * 是否转换
     */
    Boolean parsed;

    /**
     * 答卷版本
     */
    Integer version;

    /**
     * 数据来源
     */
    Integer source;

    /**
     * 答卷归属ID
     */
    String groupId;

    /**
     * 答卷归属编码
     */
    String groupCode;

    /**
     * 答题人ID
     */
    String personId;

    /**
     * HTTP userAgent头部信息
     */
    String userAgent;

    /**
     * 答题终端类型
     */
    Integer clientType;

    /**
     * 答题IP
     */
    String ip;

    /**
     * 开始答题时间
     */
    LocalDateTime beginTime;

    /**
     * 结束答题时间
     */
    LocalDateTime finishTime;

    /**
     * rspdDataId
     */
    String rspdDataId;

    /**
     * rspdWeixinId
     */
    String rspdWeixinId;

    /**
     * rspdLocationId
     */
    String rspdLocationId;

    /**
     * rspdExtraId
     */
    String rspdExtraId;

    /**
     * rspdAttachmentId
     */
    String rspdAttachmentId;

    /**
     * 外部系统的seq
     */
    String extSeq;

    /**
     * 提交序列
     */
    Long submitSeq;

    /**
     * ip城市
     */
    String ipCountry;

    /**
     * ip省份
     */
    String ipProvince;

    /**
     * ip城市
     */
    String ipCity;

    /**
     * 备注
     */
    String remark;

    /**
     * 联系人id
     */
    String memberId;

    /**
     * 当前语言
     */
    String currentLang;

    /**
     * 投放id
     */
    String deliverId;

    /**
     * 投放组id
     */
    String deliverGroupId;

    /**
     * 二次投放记录id
     */
    String againDeliverRecordId;

    /**
     * 该样本所有的配额项集合
     */
    String quotaCheckitemList;

    /**
     * 记录创建时间
     */
    LocalDateTime createdDt;

    /**
     * 预生成csv状态标记
     */
    Boolean excelParsed;

    /**
     * surveyGids
     */
    List<Integer> surveyGids;

    /**
     * 用户微信信息
     */
    String wxInfo;

    /**
     * 专用链接投放专用码
     */
    String dedCode;
    /**
     * 样本投放surveyunion拼接上的参数
     */
    String idySid;

    /**
     * 总分
     */
    Double score;

    /**
     * Required 额外内容
     */
    RespondentExtraDto extra;

    /**
     * Required 成员姓名
     */
    MemberNodeDto member;

    /**
     * Required 成员标签
     */
    List<String> memberTags;

    /**
     * Required 外部参数
     */
    String extParams;

    /*-----------------FilledRespondentInfoDTO有但RespondentDTO没有的参数，进行添加---------------------*/
    /**
     * Required 耗时
     */
    String costTime;

    /**
     * 答卷状态
     */
    Integer respondentStatus;

    /**
     * 该样本所有的配额项集合
     */
    List<String> quotaCheckItems;

    /**
     * 记录创建时间
     */
    LocalDateTime createTime;

    /**
     * 结束答题时间
     */
    LocalDateTime endTime;

    /**
     * 开始答题时间
     */
    LocalDateTime startTime;

    /**
     * respondent_attachment_id
     */
    String attachmentId;

    /**
     * Required 浏览器
     */
    String browser;

    /**
     * 备注
     */
    String comment;

    /**
     * respondent_data_id
     */
    String dataId;

    /**
     * Required 投放方式
     */
    String deliverChannel;

    /**
     * 专用链接投放专用码
     */
    String deliverCode;

    /**
     * Required 投放来源
     */
    String deliverSource;

    /**
     * respondent_extra_id
     */
    String extraId;

    /**
     * Required 层级名
     */
    String group;

    /**
     * 样本投放survey_union拼接上的参数
     */
    String idySurveyUnionId;

    /**
     * respondent_location_id
     */
    String locationId;

    /**
     * Required 成员信息
     */
    String memberInfo;

    /**
     * Required 成员姓名
     */
    String memberName;

    /**
     * Required 操作系统
     */
    String os;

    /**
     * 答题人ID
     */
    String userId;

    /**
     * rspdWeixinId
     */
    String weixinId;

    /**
     * 用户微信信息
     */
    String wxUserInfo;
}
